package backtracking;

import java.util.Scanner;

/**
 * 
 * @author victor
 * 
 */
public class LaberintoBacktracking {

	/**
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		char[][] entrada;
		try {
			int numero = Integer.parseInt( sc.nextLine() );
			entrada = new char[numero][numero];
			int contador = 0;
			do{
				char[] linea = sc.nextLine().toCharArray();
				if (linea.length!=numero) {
					contador--;
					continue;
				}
				for(int i=0; i<numero; i++){
					entrada[contador][i] = linea[i];
				}
			}while(numero>contador++);
			
			if ( hayCamino( entrada ) ) {
				System.out.println("Si");
			} else {
				System.out.println("No");
			}
			
		} catch(Exception e){
			System.out.println( e.getMessage() );
		}
	}
	
	/**
	 * 
	 * @param laberinto
	 * @return
	 */
	private static boolean hayCamino(char[][] laberinto) {
		int[] incrX = new int[] { 1, 0, -1, 0 };
		int[] incrY = new int[] { 0, 1, 0, -1 };
		laberinto[0][0] = 'C';
		boolean exito = buscar(laberinto.length, 0, 0, laberinto, incrX, incrY);
		imprimir(laberinto);
		return exito;
	}

	/**
	 * 
	 * @param laberinto
	 */
	private static void imprimir(char[][] laberinto) {
		for (int i = 0; i < laberinto.length; i++) {
			for (int j = 0; j < laberinto.length; j++)
				System.out.print(laberinto[i][j] + " ");
			System.out.println();
		}
	}

	/**
	 * 
	 * @param n
	 * @param x
	 * @param y
	 * @param laberinto
	 * @param incrX
	 * @param incrY
	 * @return
	 */
	private static boolean buscar(int n, int x, int y, char[][] laberinto, int[] incrX, int[] incrY) {
		boolean exito = false;
		for (int k = 0; k < 4 && !exito; k++) {
			int coordX = x + incrX[k];
			int coordY = y + incrY[k];
			if (coordX >= 0 && coordX < n && coordY >= 0 && coordY < n)
				if (laberinto[coordY][coordX] == ' ') {
					laberinto[coordY][coordX] = 'C';
					if (coordX == n - 1 && coordY == n - 1)
						exito = true;
					else {
						exito = buscar(n, coordX, coordY, laberinto, incrX, incrY);
						if (!exito)
							laberinto[coordY][coordX] = ' ';
					}
				}
		}
		return exito;
	}
}
